package com.eriloan.easyPage.plugins.dao;

import java.util.List;
/**
 * 
 * <p>Copyright: All Rights Reserved</p>  
 * <p>Company: 北京荣之联科技股份有限公司   http://www.ronglian.com</p> 
 * <p>Description:  Dao 类</p> 
 * <p>Author:Eric Shi/史丙利</p>
 */
public interface IDao{
	
	/**
	 * 
	 * <br/>Description:根据SQL和参数返回对应的对象
	 * <p>Author:Eric Shi/史丙利</p>
	 * 
	 * @param sql
	 * @param params
	 * @param clazz
	 * @return
	 */
	public <T> T findObject(String sql,Object[] params,Class<T> clazz);

	/**
	 * 
	 * <br/>Description:根据SQL返回对应的对象
	 * <p>Author:Eric Shi/史丙利</p>
	 * 
	 * @param sql
	 * @param clazz
	 * @return
	 */
	public <T> T findObject(String sql,Class<T> clazz);

	/**
	 * 
	 * <br/>Description:根据SQL和参数返回对应的对象集合
	 * <p>Author:Eric Shi/史丙利</p>
	 * 
	 * @param sql
	 * @param params
	 * @param clazz
	 * @return
	 */
	public <T> List<T> findList(String sql,Object[] params,Class<T> clazz);

	/**
	 * 
	 * <br/>Description:根据SQL返回对应的对象集合
	 * <p>Author:Eric Shi/史丙利</p>
	 * 
	 * @param sql
	 * @param params
	 * @param clazz
	 * @return
	 */
	public <T> List<T> findList(String sql,Class<T> clazz);

	/**
	 * 
	 * <br/>Description:根据传入参数更新数据
	 * <p>Author:Eric Shi/史丙利</p>
	 * 
	 * @param sql
	 * @param params
	 * @return
	 */
	public int updateAndDeleteObject(String sql,Object[] params);

	/**
	 * 
	 * <br/>Description:根据传入参数更新数据
	 * <p>Author:Eric Shi/史丙利</p>
	 * 
	 * @param sql
	 * @param params
	 * @return
	 */
	public int updateAndDeleteObject(String sql);

}
